home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 June: Reference Library / Dev.CD Jun 95 / Dev.CD Jun 95.toast / What's New? / New System Software Extensions / QuickDraw 3D ß / Programming / Interfaces / QD3DExtensions.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-04-04  |  4.4 KB  |  167 lines  |  [TEXT/MPS ]

  1. /******************************************************************************
  2.  **                                                                             **
  3.  **     Module:        QD3DExtensions.h                                         **
  4.  **                                                                          **
  5.  **                                                                          **
  6.  **                                                                          **
  7.  **     Purpose:                                                              **
  8.  **                                                                          **
  9.  **                                                                          **
  10.  **     Copyright (C) 1992-1994 Apple Computer, Inc.  All rights reserved.     **
  11.  **                                                                          **
  12.  **                                                                          **
  13.  *****************************************************************************/
  14. #ifdef ESCHER_VER_15
  15.  
  16. #if ESCHER_VER_15
  17.  
  18. #ifndef QD3DExtensions_h
  19. #define QD3DExtensions_h
  20.  
  21.  
  22. #if PRAGMA_ONCE
  23.     #pragma once
  24. #endif
  25.  
  26. #ifdef __cplusplus
  27. extern "C" {
  28. #endif  /* __cplusplus  */
  29.  
  30.  
  31. /******************************************************************************
  32.  **                                                                             **
  33.  **                            Constants                                          **
  34.  **                                                                             **
  35.  *****************************************************************************/
  36.  
  37. #define kQ3ExtensionFileType            Q3_FOUR_CHARACTER_CONSTANT('e','e','x','t')
  38. #define kQ3ExtensionResourceType        Q3_FOUR_CHARACTER_CONSTANT('e','e','x','t')
  39.  
  40. #define kQ3ExtensionKindUnknown        Q3_FOUR_CHARACTER_CONSTANT('?','?','?','?')
  41. #define kQ3ExtensionKindRenderer    Q3_FOUR_CHARACTER_CONSTANT('r','e','n','d')
  42. #define kQ3ExtensionKindShader        Q3_FOUR_CHARACTER_CONSTANT('s','h','d','r')
  43.  
  44. #define kQ3ExtensionMaxShortNameLen    64
  45.  
  46. #define kQ3ExtensionInfoVersion        0x00010000
  47.  
  48.  
  49. /******************************************************************************
  50.  **                                                                             **
  51.  **                            Types                                              **
  52.  **                                                                             **
  53.  *****************************************************************************/
  54.  
  55. typedef long             TQ3ExtensionKind;
  56. typedef void             *TQ3Extension;
  57. typedef unsigned long     TQ3ExtensionInfoVersion;
  58.  
  59.  
  60. /******************************************************************************
  61.  **                                                                             **
  62.  **                            Public API                                          **
  63.  **                                                                             **
  64.  *****************************************************************************/
  65.  
  66. EXPORT TQ3Status Q3Extension_First(
  67.     TQ3Extension            *extension);
  68.  
  69. EXPORT TQ3Status Q3Extension_Next(
  70.     TQ3Extension            *extension);
  71.  
  72. EXPORT TQ3Status Q3Extension_Load(
  73.     TQ3Extension            extension);
  74.     
  75. EXPORT TQ3Status Q3Extensions_LoadAll(
  76.     void);
  77.  
  78. EXPORT TQ3Status Q3Extension_GetShortName(
  79.     TQ3Extension            extension,
  80.     char                *shortName);
  81.         
  82. EXPORT TQ3Status Q3Extension_GetLongName(
  83.     TQ3Extension            extension,
  84.     char                *shortName);
  85.     
  86. EXPORT TQ3Status Q3Extension_GetComments(
  87.     TQ3Extension            extension,
  88.     char                *shortName);
  89.     
  90. EXPORT TQ3Status Q3Extension_GetInformation(
  91.     TQ3Extension            extension,
  92.     char                *shortName);
  93.     
  94. EXPORT TQ3Status Q3Extension_GetIcon(
  95.     TQ3Extension            extension,
  96.     void                **icon);        /* PicHandle on Macintosh */
  97.     
  98. EXPORT TQ3Status Q3Extension_GetLogo(
  99.     TQ3Extension            extension,
  100.     void                **logo);        /* PicHandle on Macintosh */
  101.     
  102. EXPORT TQ3Status Q3Extension_GetPicture(
  103.     TQ3Extension            extension,
  104.     void                **picture);        /* PicHandle on Macintosh */
  105.     
  106. EXPORT TQ3Status Q3Extension_GetMemoryUsage(
  107.     TQ3Extension            extension,
  108.     unsigned long        *memoryUsage);
  109.     
  110.  
  111. /******************************************************************************
  112.  **                                                                             **
  113.  **                                    Acceleration Types                         **
  114.  **                                                                             **
  115.  *****************************************************************************/
  116.  
  117. typedef enum TQ3AcceleratorType {
  118.     kQ3AcceleratorTypeUndefined = 0            /* just a place holder */
  119. } TQ3AcceleratorType;
  120.  
  121. typedef struct TQ3AcceleratorData {
  122.     TQ3AcceleratorType    type;
  123.     void                 *privateData;
  124. } TQ3AcceleratorData;
  125.  
  126. typedef long TQ3AcceleratorID;
  127.  
  128.  
  129. /******************************************************************************
  130.  **                                                                             **
  131.  **                                 Routines                                     **
  132.  **                                                                             **
  133.  *****************************************************************************/
  134.  
  135. EXPORT TQ3Status Q3Accelerator_Register(
  136.     TQ3AcceleratorData         *data,
  137.     TQ3AcceleratorID            *id);
  138.  
  139. EXPORT TQ3Status Q3Accelerator_Unregister(
  140.     TQ3AcceleratorID            *id);
  141.  
  142. EXPORT TQ3Status Q3Accelerator_First(
  143.     TQ3AcceleratorID         *id);
  144.  
  145. EXPORT TQ3Status Q3Accelerator_GetNext(
  146.     TQ3AcceleratorID         *id);
  147.     
  148. EXPORT TQ3Status Q3Accelerator_GetData(
  149.     TQ3AcceleratorID            *id,
  150.     TQ3AcceleratorData        *data);
  151.  
  152. EXPORT void Q3Accelerators_Init(
  153.     void);
  154.     
  155. EXPORT void Q3Accelerators_Exit(
  156.     void);
  157.  
  158. #ifdef __cplusplus
  159. }
  160. #endif  /* __cplusplus  */
  161.  
  162. #endif  /* QD3DExtensions_h  */
  163.  
  164. #endif    /* Escher 1.5 */
  165.  
  166. #endif    /* ESCHER_VER_15 */
  167.